SETUP

# RESULTS for report
# 27.03.2021

# Load packages
library(summarytools)
## Registered S3 method overwritten by 'pryr':
##   method      from
##   print.bytes Rcpp
## For best results, restart R session and update pander using devtools:: or remotes::install_github('rapporter/pander')
library(knitr)
library(kableExtra)
library(sjPlot)
library(sjstats)
library(reshape2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
## 
##     group_rows
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(scales)
library(questionr)
## 
## Attaching package: 'questionr'
## The following object is masked from 'package:sjstats':
## 
##     prop
## The following object is masked from 'package:summarytools':
## 
##     freq
library(shiny)
# load utility functions
source("./R/utilities.R")



## Load data and specify inclusion/exclusion
  # read data 2004-2018
  hse_combined = read.csv("./data/HSE_combined/hse_combined.csv")
  
  # recode imd
  hse_combined$imd <- as.factor(hse_combined$imd)
  levels(hse_combined$imd) = c(
    "Least deprived",
    "Less deprived",
    "Median deprived",
    "More deprieved",
    "Most deprived"
    )
  
  # EXCLUDE: < 16 years
  hse_combined <- hse_combined[hse_combined$age5 >= 16,]

DATA SET DESCRIPTION

CLICK TO EXPAND

## Data set description

  
# Data rows: overall
nrow(hse_combined)
## [1] 149596
# Data rows: by year
kbl <- by(hse_combined,hse_combined$year, nrow)
kbl <- do.call(rbind, list(kbl))
kbl <- kable(x = kbl, format = "simple", format.args = list(big.mark = ","))
kbl
2003 2004 2005 2006 2008 2010 2011 2012 2014 2017 2018
14,836 6,704 10,303 14,142 15,098 8,420 8,610 8,290 8,077 7,997 8,178
# MISSING eq5d % by year
kbl <- by(hse_combined$eq5d,hse_combined$year, function(x){
  round( sum(is.na(x))/length(x) , 4) * 100
} )
kbl <- do.call(cbind, list(kbl))
kable(x = kbl, format = "simple",col.names  = c("% missing"))
% missing
2003 7.30
2004 8.80
2005 10.60
2006 8.60
2008 6.52
2010 12.92
2011 12.69
2012 12.01
2014 12.28
2017 19.48
2018 20.76
# NON-MISSING: rows with complete data
round(sum(complete.cases(hse_combined))/nrow(hse_combined),4)*100
## [1] 34.66
# MISSING data %; by variable
kbl <- apply(hse_combined,2,function(x){
  round( sum(is.na(x))/nrow(hse_combined) , 4) * 100
} )
kbl
##        year         age    age.bins         imd         sex          wt 
##       26.03       36.84       26.03       26.03       26.03       26.03 
##        eq5d          mo          sc          ua          pd          ad 
##       34.31       32.14       32.38       32.30       32.16       32.42 
##       hh_id  dis_infect  dis_cancer    dis_endo   dis_blood  dis_mental 
##       36.84       26.06       26.06       26.06       26.06       26.06 
##    dis_nerv     dis_eye     dis_ear    dis_circ    dis_resp  dis_digest 
##       26.06       26.06       26.06       26.06       26.06       26.06 
##  dis_genito    dis_skin dis_musculo    limitill      cigst1      bmival 
##       26.06       26.06       26.06       26.07       26.55       37.84 
##    topqual3     econact        eqv5     acutill    genhelf2    ghq12scr 
##       26.33       37.05       43.99       26.08       26.06       42.95 
##    age5.bin        age5    age_band 
##       26.03       26.03       26.03
## Exclude cases without eq5d for now
# EXCLUDE: EQ5D missing
hse_combined <- hse_combined[!is.na(hse_combined$eq5d),]

# Data rows: overall
nrow(hse_combined)
## [1] 98264
## Descriptives: age5

# distribution: age5 by IMD
ggplot(hse_combined) +
  geom_histogram(aes(age5), col = "lightgray",fill = "cadetblue") +
  facet_wrap(~imd) +
  theme_minimal()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# distribution: age5 by IMD for age5 >= 85
ggplot(hse_combined[hse_combined$age5>75,]) +
  geom_histogram(aes(age5), col = "lightgray",fill = "cadetblue",binwidth = 1) +
  facet_wrap(~imd) +
  theme_minimal()

## Descriptives: by variable
print(dfSummary(
  hse_combined, 
  plain.ascii = FALSE, 
  style = "grid", 
  graph.magnif = 0.75, 
  valid.col = FALSE, 
  tmp.img.dir = "/tmp"
),
method = 'render')

Data Frame Summary

hse_combined

Dimensions: 98264 x 39
Duplicates: 2
No Variable Stats / Values Freqs (% of Valid) Graph Missing
1 year [integer] Mean (sd) : 2008.9 (4.7) min < med < max: 2003 < 2008 < 2018 IQR (CV) : 7 (0) 11 distinct values 0 (0.0%)
2 age [integer] Mean (sd) : 49.5 (18.6) min < med < max: 16 < 49 < 100 IQR (CV) : 29 (0.4) 85 distinct values 12919 (13.1%)
3 age.bins [integer] Mean (sd) : 4 (1.8) min < med < max: 1 < 4 < 7 IQR (CV) : 2 (0.5)
1:9874(10.0%)
2:14125(14.4%)
3:17568(17.9%)
4:16456(16.7%)
5:16023(16.3%)
6:13908(14.2%)
7:10310(10.5%)
0 (0.0%)
4 imd [factor] 1. Least deprived 2. Less deprived 3. Median deprived 4. More deprieved 5. Most deprived
21735(22.1%)
20954(21.3%)
19820(20.2%)
19133(19.5%)
16622(16.9%)
0 (0.0%)
5 sex [character] 1. Female 2. Male
54856(55.8%)
43408(44.2%)
0 (0.0%)
6 wt [numeric] Mean (sd) : 1 (0.4) min < med < max: 0 < 0.9 < 7.8 IQR (CV) : 0.3 (0.4) 56873 distinct values 0 (0.0%)
7 eq5d [numeric] Mean (sd) : 0.8 (0.3) min < med < max: -0.6 < 1 < 1 IQR (CV) : 0.2 (0.3) 207 distinct values 0 (0.0%)
8 mo [integer] Mean (sd) : 1.2 (0.4) min < med < max: 1 < 1 < 3 IQR (CV) : 0 (0.3)
1:80157(81.6%)
2:17384(17.7%)
3:723(0.7%)
0 (0.0%)
9 sc [integer] Mean (sd) : 1.1 (0.2) min < med < max: 1 < 1 < 3 IQR (CV) : 0 (0.2)
1:93278(94.9%)
2:4631(4.7%)
3:355(0.4%)
0 (0.0%)
10 ua [integer] Mean (sd) : 1.2 (0.4) min < med < max: 1 < 1 < 3 IQR (CV) : 0 (0.4)
1:82036(83.5%)
2:14223(14.5%)
3:2005(2.0%)
0 (0.0%)
11 pd [integer] Mean (sd) : 1.4 (0.6) min < med < max: 1 < 1 < 3 IQR (CV) : 1 (0.4)
1:63638(64.8%)
2:29674(30.2%)
3:4952(5.0%)
0 (0.0%)
12 ad [integer] Mean (sd) : 1.2 (0.5) min < med < max: 1 < 1 < 3 IQR (CV) : 0 (0.4)
1:77867(79.2%)
2:17840(18.2%)
3:2557(2.6%)
0 (0.0%)
13 hh_id [integer] Mean (sd) : 966595.5 (564645.6) min < med < max: 101011 < 1014021 < 2371301 IQR (CV) : 926270 (0.6) 38816 distinct values 12919 (13.1%)
14 dis_infect [integer] Min : 0 Mean : 0 Max : 1
0:98073(99.8%)
1:171(0.2%)
20 (0.0%)
15 dis_cancer [integer] Min : 0 Mean : 0 Max : 1
0:96173(97.9%)
1:2071(2.1%)
20 (0.0%)
16 dis_endo [integer] Min : 0 Mean : 0.1 Max : 1
0:89948(91.6%)
1:8296(8.4%)
20 (0.0%)
17 dis_blood [integer] Min : 0 Mean : 0 Max : 1
0:97372(99.1%)
1:872(0.9%)
20 (0.0%)
18 dis_mental [integer] Min : 0 Mean : 0 Max : 1
0:94111(95.8%)
1:4133(4.2%)
20 (0.0%)
19 dis_nerv [integer] Min : 0 Mean : 0 Max : 1
0:94496(96.2%)
1:3748(3.8%)
20 (0.0%)
20 dis_eye [integer] Min : 0 Mean : 0 Max : 1
0:95929(97.6%)
1:2315(2.4%)
20 (0.0%)
21 dis_ear [integer] Min : 0 Mean : 0 Max : 1
0:95941(97.7%)
1:2303(2.3%)
20 (0.0%)
22 dis_circ [integer] Min : 0 Mean : 0.1 Max : 1
0:85311(86.8%)
1:12933(13.2%)
20 (0.0%)
23 dis_resp [integer] Min : 0 Mean : 0.1 Max : 1
0:89769(91.4%)
1:8475(8.6%)
20 (0.0%)
24 dis_digest [integer] Min : 0 Mean : 0.1 Max : 1
0:93320(95.0%)
1:4924(5.0%)
20 (0.0%)
25 dis_genito [integer] Min : 0 Mean : 0 Max : 1
0:95931(97.6%)
1:2313(2.4%)
20 (0.0%)
26 dis_skin [integer] Min : 0 Mean : 0 Max : 1
0:96682(98.4%)
1:1562(1.6%)
20 (0.0%)
27 dis_musculo [integer] Min : 0 Mean : 0.2 Max : 1
0:79934(81.4%)
1:18310(18.6%)
20 (0.0%)
28 limitill [integer] Mean (sd) : 2.3 (0.8) min < med < max: 1 < 3 < 3 IQR (CV) : 1 (0.4)
1:23978(24.4%)
2:19949(20.3%)
3:54308(55.3%)
29 (0.0%)
29 cigst1 [integer] Mean (sd) : 2.2 (1.2) min < med < max: 1 < 2 < 4 IQR (CV) : 2 (0.6)
1:46473(47.4%)
2:5485(5.6%)
3:26265(26.8%)
4:19861(20.2%)
180 (0.2%)
30 bmival [numeric] Mean (sd) : 27.3 (5.3) min < med < max: 10.6 < 26.6 < 81.8 IQR (CV) : 6.5 (0.2) 66362 distinct values 11975 (12.2%)
31 topqual3 [integer] Mean (sd) : 3.8 (2.2) min < med < max: 1 < 4 < 7 IQR (CV) : 4 (0.6)
1:21474(21.9%)
2:11123(11.3%)
3:13840(14.1%)
4:21561(22.0%)
5:4529(4.6%)
6:2048(2.1%)
7:23566(24.0%)
123 (0.1%)
32 econact [integer] Mean (sd) : 2 (1.2) min < med < max: 1 < 1 < 4 IQR (CV) : 2 (0.6)
1:46156(54.2%)
2:3776(4.4%)
3:22112(25.9%)
4:13191(15.5%)
13029 (13.3%)
33 eqv5 [integer] Mean (sd) : 3.1 (1.4) min < med < max: 1 < 3 < 5 IQR (CV) : 2 (0.5)
1:13402(17.6%)
2:14321(18.8%)
3:15628(20.5%)
4:16404(21.5%)
5:16390(21.5%)
22119 (22.5%)
34 acutill [integer] Mean (sd) : 1.4 (1.1) min < med < max: 1 < 1 < 5 IQR (CV) : 0 (0.8)
1:82541(84.0%)
2:4497(4.6%)
3:2500(2.5%)
4:2685(2.7%)
5:5995(6.1%)
46 (0.0%)
35 genhelf2 [integer] Mean (sd) : 1.3 (0.6) min < med < max: 1 < 1 < 3 IQR (CV) : 0 (0.4)
1:74245(75.6%)
2:17851(18.2%)
3:6149(6.3%)
19 (0.0%)
36 ghq12scr [integer] Mean (sd) : 1.3 (2.5) min < med < max: 0 < 0 < 12 IQR (CV) : 1 (1.9) 13 distinct values 15533 (15.8%)
37 age5.bin [integer] Mean (sd) : 8.5 (3.8) min < med < max: 1 < 8 < 17 IQR (CV) : 5 (0.4) 17 distinct values 0 (0.0%)
38 age5 [integer] Mean (sd) : 47.7 (18.5) min < med < max: 16 < 45 < 90 IQR (CV) : 25 (0.4) 17 distinct values 0 (0.0%)
39 age_band [character] 1. age_16-24 2. age_25-34 3. age_35-44 4. age_45-54 5. age_55-64 6. age_65-74 7. age_75-99
9874(10.0%)
14125(14.4%)
17568(17.9%)
16456(16.7%)
16023(16.3%)
13908(14.2%)
10310(10.5%)
0 (0.0%)

Generated by summarytools 0.9.8 (R version 4.0.2)
2021-04-16



TABLES 1+2 and FIGURES 1 + 2: Mean EQ-5D scores

# --------------------------------------------------------

## Descriptive stats: regression model
#  > `eq5d = age5 x imd + year`
# age5, imd, and year are treated as factors

imd_lvls <- levels(hse_combined$imd)
uniq_age5 <- unique(hse_combined$age5)
uniq_age5 <- uniq_age5[order(uniq_age5)]
uniq_age5_labels <- c("16-17?","18-20?",paste0(uniq_age5[-c(1,2,17)],"-",uniq_age5[-c(1,2,17)]+4),"90+")


# descriptive regression model - FEMALES
descr_lm_f <- lm(eq5d ~  as.factor(age5) * imd + as.factor(year),hse_combined[hse_combined$sex =="Female",], weights = wt)
# descriptive regression model - ALES
descr_lm_m <- lm(eq5d ~  as.factor(age5) * imd + as.factor(year),hse_combined[hse_combined$sex =="Male",], weights = wt)
# BUT WHICH YEAR SHOULD WE USE TO PREDICT MEANS?

  # SIDENOTE: Year doesnt really matter
  # 2017 and 2018 are signficantly lower - maybe because of 5L?
  year_coef_indices <- grepl("year",names(descr_lm_f$coefficients))
  cbind(
    descr_lm_f$coefficients[year_coef_indices],
    confint(descr_lm_f)[year_coef_indices,]
  )
##                                          2.5 %       97.5 %
## as.factor(year)2004 -4.222163e-03 -0.013738074  0.005293748
## as.factor(year)2005 -2.343558e-03 -0.011476732  0.006789615
## as.factor(year)2006  1.451335e-03 -0.006126911  0.009029581
## as.factor(year)2008 -6.718379e-03 -0.014152244  0.000715486
## as.factor(year)2010 -6.864760e-03 -0.015823548  0.002094028
## as.factor(year)2011 -3.283845e-02 -0.041726970 -0.023949928
## as.factor(year)2012 -4.366429e-03 -0.013335152  0.004602295
## as.factor(year)2014  3.173826e-05 -0.008998183  0.009061660
## as.factor(year)2017 -1.038619e-01 -0.113208009 -0.094515736
## as.factor(year)2018 -1.013141e-01 -0.110667377 -0.091960781
# REGRESSION MODEL WITHOUT YEAR AS PREDICTOR
  # descriptive regression model - FEMALES
  descr_lm_f <- lm(eq5d ~  as.factor(age5) * imd ,hse_combined[hse_combined$sex =="Female",], weights = wt)
  # descriptive regression model - MALES
  descr_lm_m <- lm(eq5d ~  as.factor(age5) * imd ,hse_combined[hse_combined$sex =="Male",], weights = wt)
  
# predict means by strata
# QUESTION: WHICH YEAR SHOULD WE USE TO PREDICT MEANS?
# OR BETTER USE EMPIRICAL AGGREGATE MEANS?
pred_df_f <- pred_df_m <- data.frame(age5 = rep(uniq_age5,5),imd = rep(imd_lvls,each = length(uniq_age5)))
pred_df_f_ratio <- pred_df_m_ratio <- data.frame(age5 = rep(uniq_age5,2),imd = rep(imd_lvls[c(1,5)],each = length(uniq_age5)))


# FIGURE 1
eq5d_pred_m <- predict(descr_lm_m, newdata = pred_df_m,interval  ="predict")
## Warning in predict.lm(descr_lm_m, newdata = pred_df_m, interval = "predict"): Assuming constant prediction variance even though model fit is weighted
eq5d_pred_m_plot <- cbind(pred_df_m, eq5d_pred_m)

figure1 <- ggplot(eq5d_pred_m_plot) +
    # geom_ribbon(aes(x=age5, ymin = lwr, ymax = upr, fill = imd), alpha = 0.3) + 
    geom_point(aes(x=age5, y = fit, col = imd)) +
    geom_line(aes(x=age5, y = fit, col = imd)) +
    ylim(c(0,1)) +
    ylab("Mean EQ-5D index") +
    xlab("Age group") +
    scale_x_continuous(name = "Age group", breaks = uniq_age5, labels = uniq_age5_labels) +
    ggtitle("Pooled mean EQ-5D Score by IMD quintile and age - MALE") +
    theme_minimal() +
    theme(
      axis.text.x = element_text(angle = 30),
      legend.position = "top")
figure1

ggsave(plot = figure1, filename = "./outputs/figure1.jpg",height = 5, width = 7)

# TABLE 1
eq5d_pred_m <- formatC(eq5d_pred_m,digits = 2,format = "f")
eq5d_pred_m <- paste0(eq5d_pred_m[,1]," (",eq5d_pred_m[,2],"; ",eq5d_pred_m[,3],")")
pred_df_m$eq5d <- eq5d_pred_m


# the inequality ratio ci are bootstrapped 
ineq_m <- ineq_boot1(hse_combined, "Male",boot_iter = 1000)
## Loading required package: data.table
## 
## Attaching package: 'data.table'
## The following object is masked from 'package:ggplot2':
## 
##     :=
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## The following objects are masked from 'package:reshape2':
## 
##     dcast, melt
ineq_m_formated <- formatC(as.matrix(ineq_m$plot_df),digits = 2,format = "f")
ineq_m_formated <- paste0(ineq_m_formated[,2]," (",ineq_m_formated[,3],"; ",ineq_m_formated[,4],")")

pred_df_m <- reshape(pred_df_m,direction = "wide",timevar = "imd" ,idvar = "age5")
pred_df_m <- cbind(pred_df_m, "most/least ratio" = ineq_m_formated)
pred_df_m
write.csv(pred_df_m, "./outputs/table1.csv", row.names = F)


# FIGURE 2
eq5d_pred_f <- predict(descr_lm_f, newdata = pred_df_f,interval  ="predict")
## Warning in predict.lm(descr_lm_f, newdata = pred_df_f, interval = "predict"): Assuming constant prediction variance even though model fit is weighted
eq5d_pred_f_plot <- cbind(pred_df_f, eq5d_pred_f)

figure2 <- ggplot(eq5d_pred_f_plot) +
  # geom_ribbon(aes(x=age5, ymin = lwr, ymax = upr, fill = imd), alpha = 0.3) + 
  geom_point(aes(x=age5, y = fit, col = imd)) +
  geom_line(aes(x=age5, y = fit, col = imd)) +
  ylim(c(0,1)) +
  ylab("Mean EQ-5D index") +
  xlab("Age group") +
  scale_x_continuous(name = "Age group", breaks = uniq_age5, labels = uniq_age5_labels) +
  ggtitle("Pooled mean EQ-5D Score by IMD quintile and age - FEMALE") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 30),
    legend.position = "top")
figure2

ggsave(plot = figure2, filename = "./outputs/figure2.jpg",height = 5, width = 7)

# TABLE 2
eq5d_pred_f <- formatC(eq5d_pred_f,digits = 2,format = "f")
eq5d_pred_f <- paste0(eq5d_pred_f[,1]," (",eq5d_pred_f[,2],"; ",eq5d_pred_f[,3],")")
pred_df_f$eq5d <- eq5d_pred_f

# bootstrap ineq ratio
ineq_f <- ineq_boot1(hse_combined, "Female",boot_iter = 1000)
ineq_f_formated <- formatC(as.matrix(ineq_f$plot_df),digits = 2,format = "f")
ineq_f_formated <- paste0(ineq_f_formated[,2]," (",ineq_f_formated[,3],"; ",ineq_f_formated[,4],")")


pred_df_f <- reshape(pred_df_f,direction = "wide",timevar = "imd" ,idvar = "age5")
pred_df_f <- cbind(pred_df_f, "most/least ratio" = ineq_f_formated)
pred_df_f
write.csv(pred_df_f, "./outputs/table2.csv", row.names = F)

SIDENOTE: Any difference in variance between male and female?

# Yes, females have about 7% higher SD
  eq5d_sd_sex_tot <- aggregate(eq5d ~ sex, hse_combined, sd)
  (eq5d_sd_sex_tot$eq5d[1] / eq5d_sd_sex_tot$eq5d[2] - 1) * 100
## [1] 7.514204
  eq5d_sd_sex <- aggregate(eq5d ~ sex + age5, hse_combined, sd)
  eq5d_sd_sex <- reshape(eq5d_sd_sex,direction = "wide",timevar = "sex" ,idvar = "age5")
  eq5d_sd_sex$female_sd_proz <-  ( (eq5d_sd_sex$eq5d.Female / eq5d_sd_sex$eq5d.Male) - 1) * 100
  eq5d_sd_sex

FIGURE 3 + 4 (variations): Ratio of IMD1/5 mean EQ-5D score

# FIGURE 3 - COMBINED
ineq_m_plot <- reshape2::melt(data.frame(ineq_m$plot_df),id.vars = "age5")
ineq_m_plot$sex = "Male"
ineq_f_plot <- reshape2::melt(data.frame(ineq_f$plot_df),id.vars = "age5")
ineq_f_plot$sex = "Female"
ineq_plot <- rbind(ineq_m_plot,ineq_f_plot)
ineq_plot <- reshape(ineq_plot,direction = "wide",timevar = "variable",idvar = c("age5","sex"))

figure3c <- ineqPlotter(ineq_plot)
figure3c

ggsave(plot = figure3c, filename = "./outputs/figure3c.jpg",height = 5, width = 7)

figure3c_ci <- ineqPlotter(ineq_plot,ci = T)
ggsave(plot = figure3c_ci, filename = "./outputs/figure3c_ci.jpg",height = 5, width = 7)

# FIGURE 3
figure3 <- ineqPlotter(ineq_plot[ineq_plot$sex == "Male",], ci = T, title = "Inequality index of EQ-5D scores by age - Males")
ggsave(plot = figure3, filename = "./outputs/figure3.jpg",height = 5, width = 7)

figure3_tbl <- figTabler(ineq_plot[ineq_plot$sex == "Male",-2])
write.csv(figure3_tbl, "./outputs/figure3_tbl.csv",row.names = F)

# FIGURE 4 
figure4 <- ineqPlotter(ineq_plot[ineq_plot$sex == "Female",], ci = T, title = "Inequality index of EQ-5D scores by age - Females")
ggsave(plot = figure4, filename = "./outputs/figure4.jpg",height = 5, width = 7)

figure4_tbl <- figTabler(ineq_plot[ineq_plot$sex == "Female",-2])
write.csv(figure4_tbl, "./outputs/figure4_tbl.csv",row.names = F)

FIGURES 5 + 6: Absolute difference in IMD1/5 mean EQ-5D score

# FIGURE 5
ineq_plot_abs_m <- ineq_boot1(hse_combined,"Male",boot_iter = 1000, abs = T)
ineq_plot_abs_m$p1

ggsave(plot = ineq_plot_abs_m$p1,"./outputs/figure5.jpg",height = 5, width = 7)

figure5_tbl <- figTabler(ineq_plot_abs_m$plot_df)
figure5_tbl
write.csv(figure5_tbl, "./outputs/figure5_tbl.csv",row.names = F)

# FIGURE 6
ineq_plot_abs_f <- ineq_boot1(hse_combined,"Female",boot_iter = 1000, abs = T)
ineq_plot_abs_f$p1

ggsave(plot = ineq_plot_abs_f$p1,"./outputs/figure6.jpg",height = 5, width = 7)


figure6_tbl <- figTabler(ineq_plot_abs_f$plot_df)
figure6_tbl
write.csv(figure6_tbl, "./outputs/figure6_tbl.csv",row.names = F)

FIGURES 7 + 8: Concentration index value by age - PRE / POST 2017 bc 5L

load("ciResults_markdown.RData")

# Dimension plots for unweighted analysis

ggplot(filter(allCIResults,Period=="Pre17"), aes(x=Age,y=CI,group=Sex,col=Sex,fill=Sex)) +
  geom_line() + geom_hline(yintercept=0, colour="black") +
  ylab("Concentration Index") + theme_minimal() +
  xlab("Age") + facet_wrap(~Dimension) +
  geom_ribbon(aes(ymin=CI_lci, ymax=CI_uci),alpha=0.2,colour=NA) +
  ggtitle("3L 2003-2014")

ggplot(filter(allCIResults,Period=="Post17"), aes(x=Age,y=CI,group=Sex,col=Sex,fill=Sex)) +
  geom_line() + geom_hline(yintercept=0, colour="black") +
  ylab("Concentration Index") + theme_minimal() +
  xlab("Age") + facet_wrap(~Dimension) +
  geom_ribbon(aes(ymin=CI_lci, ymax=CI_uci),alpha=0.2,colour=NA) +
  ggtitle("5L 2017+2018")

FIGURES 9 + 10: Proportion reporting each level of response for each EQ-5D dimension

# FIGURE 9

# ONLY FOR 3L DIMENSIONS 2003-2014 !
# EXCLUDING 2017 + 2018

# source("./R/utilities.R")

dim_agg1 <- dimGetter(hse_combined[hse_combined$year <= 2014,], 1)
dim_agg2 <- dimGetter(hse_combined[hse_combined$year <= 2014,], 2)
dim_agg3 <- dimGetter(hse_combined[hse_combined$year <= 2014,], 3)

dim_aggs <- merge(dim_agg1,dim_agg2, all.x=T, all.y = T)
dim_aggs <- merge(dim_aggs,dim_agg3, all.x=T, all.y = T)

dim_aggs_long = melt(dim_aggs,id.vars = c("imd","sex","age5","level"))
dim_aggs_long_rel <- dim_aggs_long[grepl("rel",dim_aggs_long$variable),]

dim_aggs_long_rel$variable = as.character(dim_aggs_long_rel$variable)
keep_var <- dim_aggs_long_rel$level == as.numeric( substr(dim_aggs_long_rel$variable,nchar(dim_aggs_long_rel$variable),nchar(dim_aggs_long_rel$variable)))
dim_aggs_long_rel <- dim_aggs_long_rel[keep_var,]

# dim_aggs_long_rel$value[is.na(dim_aggs_long_rel$value)] <- 0
dim_aggs_long_rel$dimension = substr(dim_aggs_long_rel$variable,1,2)


dim_aggs_long_rel$dimension = factor(dim_aggs_long_rel$dimension, 
                                     levels=c("mo","sc","ua","pd","ad")
)

dim_aggs_long_rel$dimension <- recode(
  dim_aggs_long_rel$dimension,
  mo = "Mobility",
  sc = "Self-care",
  ua = "Usual activities",
  pd = "Pain/Discomfort",
  ad = "Anxiety/Depression"
)

 


col_labs <- c("No problems","Some problems","Extreme problems")

figure9 <-  ggplot(dim_aggs_long_rel[dim_aggs_long_rel$sex=="Male",], 
                    aes(x=as.factor(age5), y=value,fill=as.factor(level),
                        col=as.factor(level))) + 
  geom_col(position = 'stack',alpha=0.6)   +
  facet_grid(dimension ~ imd)  +
  scale_color_manual(values = c("lightgreen","orange","red"),
                     labels = c(col_labs),name="Level")  +
  scale_fill_manual(values = c("lightgreen","orange","red"),
                    labels = c(col_labs),name="Level")  +
  xlab("Age group") +
  ylab("Proportion") +
  theme_minimal()+
  theme(legend.position = "bottom") +
  ggtitle("Proportion reporting each level of response for each EQ-5D dimension over age - Males") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45),
    legend.position = "top")
figure9
## Warning: Removed 113 rows containing missing values (position_stack).

ggsave(plot = figure9, filename = "./outputs/figure9.jpg",height = 8, width = 9)
## Warning: Removed 113 rows containing missing values (position_stack).
figure10 <-  ggplot(dim_aggs_long_rel[dim_aggs_long_rel$sex=="Female",], 
             aes(x=as.factor(age5), y=value,fill=as.factor(level),
                 col=as.factor(level))) + 
  geom_col(position = 'stack',alpha=0.6)   +
  facet_grid(dimension ~ imd)  +
  scale_color_manual(values = c("lightgreen","orange","red"),
                     labels = c(col_labs),name="Level")  +
  scale_fill_manual(values = c("lightgreen","orange","red"),
                    labels = c(col_labs),name="Level")  +
    xlab("Age group") +
    ylab("Proportion") +
  theme_minimal()+
  theme(legend.position = "bottom") +
    ggtitle("Proportion reporting each level of response for each EQ-5D dimension over age - Females") +
    theme_minimal() +
    theme(
      axis.text.x = element_text(angle = 45),
      legend.position = "top")
figure10
## Warning: Removed 96 rows containing missing values (position_stack).

ggsave(plot = figure10, filename = "./outputs/figure10.jpg",height = 8, width = 9)
## Warning: Removed 96 rows containing missing values (position_stack).

FIGURES 11 - 16: IMD1/IMD5 ratio of % reporting problems for each EQ-5D dimension

# ------------------------------------------------------------------------
#### Line graph showing ratio of IMD1/IMD5 for each EQ-5D dimension over age

# FIGURE 11
figure11 <- dimProbPlotter(dim_aggs_long_rel,1,label = "No Problems","Male")
figure11

ggsave(plot = figure11, filename = "./outputs/figure11.jpg",height = 8, width = 9)

# FIGURE 12
figure12 <- dimProbPlotter(dim_aggs_long_rel,1,label = "No Problems","Female")
figure12

ggsave(plot = figure12, filename = "./outputs/figure12.jpg",height = 8, width = 9)

# FIGURE 13
figure13 <- dimProbPlotter(dim_aggs_long_rel,2,label = "Some Problems","Male")
figure13

ggsave(plot = figure13, filename = "./outputs/figure13.jpg",height = 8, width = 9)

# FIGURE 14
figure14 <- dimProbPlotter(dim_aggs_long_rel,2,label = "Some Problems","Female")
figure14

ggsave(plot = figure14, filename = "./outputs/figure14.jpg",height = 8, width = 9)

# FIGURE 15
figure15 <- dimProbPlotter(dim_aggs_long_rel,3,label = "Extreme Problems","Male")
figure15
## Warning: Removed 6 row(s) containing missing values (geom_path).

ggsave(plot = figure15, filename = "./outputs/figure15.jpg",height = 8, width = 9)
## Warning: Removed 6 row(s) containing missing values (geom_path).
# FIGURE 16
figure16 <- dimProbPlotter(dim_aggs_long_rel,3,label = "Extreme Problems","Female")
figure16
## Warning: Removed 6 row(s) containing missing values (geom_path).

ggsave(plot = figure16, filename = "./outputs/figure16.jpg",height = 8, width = 9)
## Warning: Removed 6 row(s) containing missing values (geom_path).

TABLES 3-12

uniq_sex <- unique(dim_aggs_long_rel$sex)
uniq_dims <- unique(dim_aggs_long_rel$dimension)
uniq_imd <- as.character(unique(dim_aggs_long_rel$imd))

dimPropTbler <- function(dim_aggs_long_rel,dim = "Mobility",sex = "Male"){
  dim_aggs_long_rel_mo <- dim_aggs_long_rel[dim_aggs_long_rel$dimension == dim & dim_aggs_long_rel$sex == sex,]
  dim_aggs_long_rel_mo <- dim_aggs_long_rel_mo[,c("imd","age5","level","value")]
  dim_aggs_long_rel_mo$value[is.na(dim_aggs_long_rel_mo$value)] <- 0
  dim_aggs_long_rel_mo$value <- round(dim_aggs_long_rel_mo$value,2)*100
  dim_aggs_long_rel_mo$value <- paste0(dim_aggs_long_rel_mo$value," %")
  dim_aggs_long_rel_mo_tbl <- reshape(dim_aggs_long_rel_mo,direction = "wide", idvar = c("level", "age5"),  timevar = "imd")
  dim_aggs_long_rel_mo_tbl <- dim_aggs_long_rel_mo_tbl[order(dim_aggs_long_rel_mo_tbl$age5),]
  reps <- sum(dim_aggs_long_rel_mo_tbl$age5 == dim_aggs_long_rel_mo_tbl$age5[1])
  dim_aggs_long_rel_mo_tbl$age5 <- rep(uniq_age5_labels,each = reps)
  dim_aggs_long_rel_mo_tbl$age5 <- paste0("age ",dim_aggs_long_rel_mo_tbl$age5)
  dim_aggs_long_rel_mo_tbl$level <- paste0("lvl ",dim_aggs_long_rel_mo_tbl$level)
  rownames(dim_aggs_long_rel_mo_tbl) <- NULL
  return(dim_aggs_long_rel_mo_tbl)  
}

# create % problems by dimension, age, imd and sex tables 
tbl_index = 3
tbl_list <- list()
for(s in uniq_sex){
  for(d in uniq_dims){
    tbl_t <- dimPropTbler(dim_aggs_long_rel, dim = d,sex =  s)
    write.csv(tbl_t,file = paste0("./outputs/table",tbl_index))
    
    tbl_list[tbl_index-2] <- kable(
      tbl_t[,-c(1)],
      col.names = c("level",uniq_imd),
      caption = paste0(d," - ",s),
      booktabs = T) %>%
        kableExtra::group_rows(index = table(tbl_t$age5)) %>%
        kable_styling( full_width = F, position = "left")

    
    tbl_index <- tbl_index + 1
  }  
}

# # print results
for(l in tbl_list){
  print(shiny::HTML(l))
  cat("\n")
  cat("<br>")
  cat("<hr>")
  cat("<br>")
}
Mobility - Female
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 96 % 96 % 98 % 98 % 99 %
lvl 2 4 % 4 % 2 % 2 % 1 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 18-20?
lvl 1 97 % 97 % 97 % 98 % 91 %
lvl 2 3 % 3 % 3 % 2 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 97 % 97 % 95 % 96 % 94 %
lvl 2 3 % 3 % 5 % 4 % 6 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 25-29
lvl 1 96 % 96 % 97 % 94 % 94 %
lvl 2 4 % 4 % 3 % 6 % 5 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 97 % 96 % 95 % 93 % 91 %
lvl 2 3 % 4 % 5 % 7 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 35-39
lvl 1 96 % 93 % 93 % 91 % 87 %
lvl 2 4 % 7 % 6 % 9 % 13 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 40-44
lvl 1 95 % 93 % 91 % 89 % 82 %
lvl 2 5 % 7 % 9 % 11 % 18 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 45-49
lvl 1 92 % 91 % 88 % 84 % 75 %
lvl 2 8 % 9 % 12 % 15 % 25 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 50-54
lvl 1 89 % 86 % 81 % 76 % 67 %
lvl 2 11 % 14 % 19 % 24 % 32 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 55-59
lvl 1 86 % 81 % 77 % 73 % 63 %
lvl 2 14 % 19 % 23 % 27 % 37 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 60-64
lvl 1 83 % 79 % 75 % 70 % 60 %
lvl 2 17 % 21 % 25 % 30 % 40 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 65-69
lvl 1 78 % 76 % 72 % 63 % 58 %
lvl 2 22 % 24 % 28 % 36 % 42 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 70-74
lvl 1 70 % 65 % 61 % 56 % 55 %
lvl 2 30 % 35 % 39 % 44 % 45 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 75-79
lvl 1 65 % 53 % 56 % 51 % 43 %
lvl 2 35 % 47 % 44 % 48 % 57 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 80-84
lvl 1 50 % 50 % 43 % 40 % 30 %
lvl 2 50 % 50 % 56 % 60 % 69 %
lvl 3 0 % 0 % 1 % 1 % 1 %
age 85-89
lvl 1 37 % 36 % 30 % 24 % 27 %
lvl 2 63 % 64 % 70 % 76 % 73 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 90+
lvl 1 31 % 21 % 24 % 31 % 11 %
lvl 2 69 % 77 % 74 % 67 % 89 %
lvl 3 0 % 1 % 1 % 2 % 0 %



Self-care - Female
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 98 % 100 % 99 % 99 % 100 %
lvl 2 1 % 0 % 1 % 1 % 0 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 18-20?
lvl 1 100 % 99 % 100 % 98 % 100 %
lvl 2 0 % 1 % 0 % 2 % 0 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 100 % 100 % 99 % 99 % 98 %
lvl 2 0 % 0 % 1 % 1 % 1 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 25-29
lvl 1 99 % 99 % 99 % 99 % 98 %
lvl 2 1 % 1 % 1 % 1 % 2 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 100 % 98 % 99 % 98 % 97 %
lvl 2 0 % 1 % 1 % 2 % 2 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 35-39
lvl 1 99 % 98 % 98 % 97 % 96 %
lvl 2 1 % 1 % 1 % 3 % 4 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 40-44
lvl 1 99 % 98 % 98 % 96 % 93 %
lvl 2 1 % 2 % 2 % 4 % 7 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 45-49
lvl 1 99 % 98 % 96 % 95 % 91 %
lvl 2 1 % 2 % 4 % 4 % 8 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 50-54
lvl 1 98 % 96 % 95 % 92 % 86 %
lvl 2 2 % 4 % 5 % 8 % 13 %
lvl 3 0 % 0 % 1 % 0 % 1 %
age 55-59
lvl 1 96 % 96 % 93 % 89 % 85 %
lvl 2 4 % 4 % 7 % 10 % 14 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 60-64
lvl 1 97 % 95 % 92 % 92 % 85 %
lvl 2 3 % 4 % 7 % 8 % 14 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 65-69
lvl 1 97 % 93 % 93 % 90 % 86 %
lvl 2 3 % 6 % 7 % 10 % 13 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 70-74
lvl 1 94 % 91 % 93 % 87 % 86 %
lvl 2 6 % 9 % 7 % 12 % 13 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 75-79
lvl 1 93 % 88 % 89 % 89 % 78 %
lvl 2 6 % 12 % 10 % 10 % 22 %
lvl 3 0 % 0 % 1 % 1 % 0 %
age 80-84
lvl 1 86 % 88 % 81 % 85 % 78 %
lvl 2 13 % 11 % 18 % 13 % 21 %
lvl 3 1 % 1 % 2 % 1 % 1 %
age 85-89
lvl 1 82 % 78 % 79 % 75 % 66 %
lvl 2 17 % 22 % 19 % 23 % 32 %
lvl 3 2 % 1 % 2 % 2 % 3 %
age 90+
lvl 1 70 % 68 % 66 % 68 % 57 %
lvl 2 28 % 28 % 28 % 27 % 41 %
lvl 3 1 % 4 % 6 % 5 % 3 %



Usual activities - Female
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 95 % 97 % 97 % 97 % 97 %
lvl 2 4 % 3 % 3 % 3 % 3 %
lvl 3 1 % 0 % 0 % 1 % 0 %
age 18-20?
lvl 1 97 % 94 % 97 % 96 % 90 %
lvl 2 3 % 6 % 3 % 4 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 95 % 95 % 91 % 95 % 92 %
lvl 2 5 % 5 % 8 % 5 % 7 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 25-29
lvl 1 94 % 93 % 93 % 93 % 90 %
lvl 2 5 % 7 % 6 % 7 % 10 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 93 % 92 % 93 % 91 % 90 %
lvl 2 7 % 7 % 6 % 8 % 9 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 35-39
lvl 1 93 % 92 % 91 % 89 % 86 %
lvl 2 7 % 8 % 8 % 11 % 13 %
lvl 3 0 % 0 % 1 % 1 % 1 %
age 40-44
lvl 1 92 % 92 % 89 % 86 % 82 %
lvl 2 7 % 7 % 11 % 13 % 17 %
lvl 3 1 % 1 % 0 % 1 % 2 %
age 45-49
lvl 1 91 % 89 % 88 % 83 % 76 %
lvl 2 9 % 10 % 11 % 16 % 22 %
lvl 3 0 % 1 % 2 % 1 % 2 %
age 50-54
lvl 1 90 % 85 % 81 % 76 % 68 %
lvl 2 10 % 13 % 16 % 21 % 28 %
lvl 3 0 % 2 % 3 % 3 % 4 %
age 55-59
lvl 1 86 % 82 % 78 % 75 % 65 %
lvl 2 13 % 17 % 20 % 22 % 31 %
lvl 3 1 % 1 % 2 % 3 % 4 %
age 60-64
lvl 1 85 % 81 % 77 % 74 % 66 %
lvl 2 14 % 17 % 20 % 24 % 31 %
lvl 3 1 % 1 % 2 % 2 % 4 %
age 65-69
lvl 1 84 % 80 % 80 % 71 % 66 %
lvl 2 15 % 18 % 19 % 27 % 29 %
lvl 3 1 % 2 % 2 % 2 % 5 %
age 70-74
lvl 1 76 % 73 % 71 % 65 % 60 %
lvl 2 22 % 26 % 27 % 32 % 36 %
lvl 3 1 % 2 % 2 % 3 % 5 %
age 75-79
lvl 1 74 % 67 % 64 % 63 % 51 %
lvl 2 23 % 31 % 31 % 31 % 42 %
lvl 3 2 % 3 % 4 % 6 % 7 %
age 80-84
lvl 1 57 % 65 % 56 % 49 % 47 %
lvl 2 37 % 31 % 38 % 43 % 43 %
lvl 3 6 % 4 % 6 % 7 % 9 %
age 85-89
lvl 1 46 % 44 % 43 % 35 % 36 %
lvl 2 47 % 48 % 48 % 56 % 50 %
lvl 3 7 % 8 % 9 % 9 % 14 %
age 90+
lvl 1 42 % 39 % 36 % 40 % 22 %
lvl 2 47 % 52 % 46 % 47 % 56 %
lvl 3 11 % 9 % 18 % 13 % 22 %



Pain/Discomfort - Female
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 87 % 92 % 83 % 86 % 84 %
lvl 2 13 % 8 % 17 % 14 % 15 %
lvl 3 1 % 0 % 0 % 0 % 1 %
age 18-20?
lvl 1 83 % 84 % 85 % 87 % 79 %
lvl 2 17 % 16 % 14 % 12 % 19 %
lvl 3 0 % 0 % 0 % 0 % 2 %
age 20-24
lvl 1 84 % 88 % 84 % 85 % 82 %
lvl 2 15 % 12 % 14 % 14 % 17 %
lvl 3 0 % 0 % 2 % 2 % 1 %
age 25-29
lvl 1 84 % 84 % 87 % 83 % 81 %
lvl 2 15 % 16 % 13 % 15 % 18 %
lvl 3 1 % 1 % 1 % 2 % 1 %
age 30-34
lvl 1 86 % 85 % 80 % 80 % 76 %
lvl 2 13 % 14 % 19 % 18 % 21 %
lvl 3 1 % 1 % 1 % 2 % 4 %
age 35-39
lvl 1 84 % 78 % 78 % 74 % 69 %
lvl 2 16 % 20 % 20 % 24 % 26 %
lvl 3 1 % 2 % 2 % 2 % 4 %
age 40-44
lvl 1 79 % 77 % 74 % 69 % 63 %
lvl 2 19 % 20 % 24 % 27 % 31 %
lvl 3 1 % 2 % 2 % 3 % 6 %
age 45-49
lvl 1 74 % 72 % 70 % 65 % 55 %
lvl 2 25 % 26 % 27 % 30 % 38 %
lvl 3 2 % 2 % 3 % 4 % 7 %
age 50-54
lvl 1 68 % 65 % 56 % 53 % 47 %
lvl 2 30 % 33 % 39 % 40 % 41 %
lvl 3 2 % 3 % 5 % 7 % 12 %
age 55-59
lvl 1 66 % 60 % 55 % 52 % 41 %
lvl 2 31 % 35 % 38 % 38 % 43 %
lvl 3 3 % 4 % 6 % 9 % 16 %
age 60-64
lvl 1 60 % 57 % 50 % 47 % 39 %
lvl 2 37 % 39 % 43 % 44 % 48 %
lvl 3 2 % 5 % 7 % 8 % 13 %
age 65-69
lvl 1 58 % 54 % 49 % 45 % 38 %
lvl 2 38 % 40 % 46 % 45 % 49 %
lvl 3 4 % 6 % 5 % 9 % 13 %
age 70-74
lvl 1 49 % 44 % 43 % 37 % 34 %
lvl 2 47 % 50 % 50 % 53 % 52 %
lvl 3 4 % 6 % 7 % 10 % 14 %
age 75-79
lvl 1 48 % 37 % 39 % 38 % 29 %
lvl 2 48 % 54 % 54 % 54 % 57 %
lvl 3 4 % 9 % 7 % 8 % 14 %
age 80-84
lvl 1 37 % 34 % 36 % 36 % 30 %
lvl 2 53 % 57 % 55 % 53 % 56 %
lvl 3 10 % 9 % 9 % 11 % 14 %
age 85-89
lvl 1 34 % 31 % 28 % 28 % 32 %
lvl 2 57 % 62 % 57 % 58 % 52 %
lvl 3 8 % 7 % 15 % 14 % 17 %
age 90+
lvl 1 37 % 39 % 36 % 44 % 26 %
lvl 2 53 % 50 % 57 % 44 % 56 %
lvl 3 10 % 11 % 8 % 12 % 18 %



Anxiety/Depression - Female
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 83 % 86 % 83 % 84 % 87 %
lvl 2 16 % 13 % 17 % 16 % 12 %
lvl 3 1 % 1 % 0 % 1 % 1 %
age 18-20?
lvl 1 83 % 79 % 86 % 85 % 84 %
lvl 2 16 % 20 % 12 % 14 % 12 %
lvl 3 1 % 1 % 3 % 1 % 4 %
age 20-24
lvl 1 80 % 81 % 80 % 80 % 79 %
lvl 2 18 % 18 % 19 % 19 % 19 %
lvl 3 2 % 1 % 1 % 1 % 2 %
age 25-29
lvl 1 85 % 82 % 81 % 80 % 79 %
lvl 2 14 % 16 % 18 % 18 % 18 %
lvl 3 1 % 1 % 1 % 2 % 3 %
age 30-34
lvl 1 85 % 85 % 82 % 80 % 76 %
lvl 2 14 % 15 % 16 % 18 % 21 %
lvl 3 1 % 0 % 2 % 2 % 3 %
age 35-39
lvl 1 82 % 82 % 81 % 77 % 72 %
lvl 2 17 % 17 % 17 % 21 % 24 %
lvl 3 1 % 1 % 2 % 3 % 4 %
age 40-44
lvl 1 82 % 80 % 78 % 75 % 69 %
lvl 2 16 % 19 % 20 % 23 % 26 %
lvl 3 1 % 2 % 2 % 2 % 6 %
age 45-49
lvl 1 81 % 81 % 77 % 75 % 69 %
lvl 2 18 % 18 % 20 % 23 % 25 %
lvl 3 1 % 1 % 3 % 2 % 6 %
age 50-54
lvl 1 80 % 81 % 73 % 69 % 66 %
lvl 2 19 % 18 % 24 % 27 % 28 %
lvl 3 1 % 1 % 3 % 4 % 6 %
age 55-59
lvl 1 80 % 79 % 75 % 70 % 61 %
lvl 2 19 % 19 % 22 % 25 % 32 %
lvl 3 1 % 2 % 3 % 5 % 7 %
age 60-64
lvl 1 81 % 79 % 75 % 76 % 66 %
lvl 2 18 % 20 % 23 % 22 % 29 %
lvl 3 1 % 1 % 2 % 2 % 5 %
age 65-69
lvl 1 83 % 78 % 80 % 75 % 68 %
lvl 2 17 % 20 % 18 % 23 % 28 %
lvl 3 1 % 2 % 2 % 2 % 4 %
age 70-74
lvl 1 80 % 81 % 78 % 75 % 71 %
lvl 2 19 % 18 % 20 % 24 % 26 %
lvl 3 1 % 1 % 2 % 2 % 4 %
age 75-79
lvl 1 80 % 78 % 77 % 76 % 68 %
lvl 2 19 % 21 % 21 % 22 % 29 %
lvl 3 1 % 1 % 2 % 1 % 3 %
age 80-84
lvl 1 76 % 76 % 73 % 74 % 72 %
lvl 2 24 % 23 % 26 % 23 % 27 %
lvl 3 1 % 1 % 1 % 3 % 1 %
age 85-89
lvl 1 69 % 75 % 72 % 67 % 65 %
lvl 2 29 % 25 % 25 % 31 % 31 %
lvl 3 2 % 0 % 3 % 2 % 4 %
age 90+
lvl 1 73 % 72 % 69 % 70 % 70 %
lvl 2 24 % 26 % 31 % 30 % 30 %
lvl 3 3 % 3 % 0 % 0 % 0 %



Mobility - Male
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 96 % 96 % 98 % 98 % 99 %
lvl 2 4 % 4 % 2 % 2 % 1 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 18-20?
lvl 1 97 % 97 % 97 % 98 % 91 %
lvl 2 3 % 3 % 3 % 2 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 97 % 97 % 95 % 96 % 94 %
lvl 2 3 % 3 % 5 % 4 % 6 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 25-29
lvl 1 96 % 96 % 97 % 94 % 94 %
lvl 2 4 % 4 % 3 % 6 % 5 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 97 % 96 % 95 % 93 % 91 %
lvl 2 3 % 4 % 5 % 7 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 35-39
lvl 1 96 % 93 % 93 % 91 % 87 %
lvl 2 4 % 7 % 6 % 9 % 13 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 40-44
lvl 1 95 % 93 % 91 % 89 % 82 %
lvl 2 5 % 7 % 9 % 11 % 18 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 45-49
lvl 1 92 % 91 % 88 % 84 % 75 %
lvl 2 8 % 9 % 12 % 15 % 25 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 50-54
lvl 1 89 % 86 % 81 % 76 % 67 %
lvl 2 11 % 14 % 19 % 24 % 32 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 55-59
lvl 1 86 % 81 % 77 % 73 % 63 %
lvl 2 14 % 19 % 23 % 27 % 37 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 60-64
lvl 1 83 % 79 % 75 % 70 % 60 %
lvl 2 17 % 21 % 25 % 30 % 40 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 65-69
lvl 1 78 % 76 % 72 % 63 % 58 %
lvl 2 22 % 24 % 28 % 36 % 42 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 70-74
lvl 1 70 % 65 % 61 % 56 % 55 %
lvl 2 30 % 35 % 39 % 44 % 45 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 75-79
lvl 1 65 % 53 % 56 % 51 % 43 %
lvl 2 35 % 47 % 44 % 48 % 57 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 80-84
lvl 1 50 % 50 % 43 % 40 % 30 %
lvl 2 50 % 50 % 56 % 60 % 69 %
lvl 3 0 % 0 % 1 % 1 % 1 %
age 85-89
lvl 1 37 % 36 % 30 % 24 % 27 %
lvl 2 63 % 64 % 70 % 76 % 73 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 90+
lvl 1 31 % 21 % 24 % 31 % 11 %
lvl 2 69 % 77 % 74 % 67 % 89 %
lvl 3 0 % 1 % 1 % 2 % 0 %



Self-care - Male
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 98 % 100 % 99 % 99 % 100 %
lvl 2 1 % 0 % 1 % 1 % 0 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 18-20?
lvl 1 100 % 99 % 100 % 98 % 100 %
lvl 2 0 % 1 % 0 % 2 % 0 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 100 % 100 % 99 % 99 % 98 %
lvl 2 0 % 0 % 1 % 1 % 1 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 25-29
lvl 1 99 % 99 % 99 % 99 % 98 %
lvl 2 1 % 1 % 1 % 1 % 2 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 100 % 98 % 99 % 98 % 97 %
lvl 2 0 % 1 % 1 % 2 % 2 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 35-39
lvl 1 99 % 98 % 98 % 97 % 96 %
lvl 2 1 % 1 % 1 % 3 % 4 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 40-44
lvl 1 99 % 98 % 98 % 96 % 93 %
lvl 2 1 % 2 % 2 % 4 % 7 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 45-49
lvl 1 99 % 98 % 96 % 95 % 91 %
lvl 2 1 % 2 % 4 % 4 % 8 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 50-54
lvl 1 98 % 96 % 95 % 92 % 86 %
lvl 2 2 % 4 % 5 % 8 % 13 %
lvl 3 0 % 0 % 1 % 0 % 1 %
age 55-59
lvl 1 96 % 96 % 93 % 89 % 85 %
lvl 2 4 % 4 % 7 % 10 % 14 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 60-64
lvl 1 97 % 95 % 92 % 92 % 85 %
lvl 2 3 % 4 % 7 % 8 % 14 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 65-69
lvl 1 97 % 93 % 93 % 90 % 86 %
lvl 2 3 % 6 % 7 % 10 % 13 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 70-74
lvl 1 94 % 91 % 93 % 87 % 86 %
lvl 2 6 % 9 % 7 % 12 % 13 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 75-79
lvl 1 93 % 88 % 89 % 89 % 78 %
lvl 2 6 % 12 % 10 % 10 % 22 %
lvl 3 0 % 0 % 1 % 1 % 0 %
age 80-84
lvl 1 86 % 88 % 81 % 85 % 78 %
lvl 2 13 % 11 % 18 % 13 % 21 %
lvl 3 1 % 1 % 2 % 1 % 1 %
age 85-89
lvl 1 82 % 78 % 79 % 75 % 66 %
lvl 2 17 % 22 % 19 % 23 % 32 %
lvl 3 2 % 1 % 2 % 2 % 3 %
age 90+
lvl 1 70 % 68 % 66 % 68 % 57 %
lvl 2 28 % 28 % 28 % 27 % 41 %
lvl 3 1 % 4 % 6 % 5 % 3 %



Usual activities - Male
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 95 % 97 % 97 % 97 % 97 %
lvl 2 4 % 3 % 3 % 3 % 3 %
lvl 3 1 % 0 % 0 % 1 % 0 %
age 18-20?
lvl 1 97 % 94 % 97 % 96 % 90 %
lvl 2 3 % 6 % 3 % 4 % 9 %
lvl 3 0 % 0 % 0 % 0 % 0 %
age 20-24
lvl 1 95 % 95 % 91 % 95 % 92 %
lvl 2 5 % 5 % 8 % 5 % 7 %
lvl 3 0 % 0 % 0 % 0 % 1 %
age 25-29
lvl 1 94 % 93 % 93 % 93 % 90 %
lvl 2 5 % 7 % 6 % 7 % 10 %
lvl 3 1 % 0 % 0 % 0 % 0 %
age 30-34
lvl 1 93 % 92 % 93 % 91 % 90 %
lvl 2 7 % 7 % 6 % 8 % 9 %
lvl 3 0 % 0 % 0 % 1 % 1 %
age 35-39
lvl 1 93 % 92 % 91 % 89 % 86 %
lvl 2 7 % 8 % 8 % 11 % 13 %
lvl 3 0 % 0 % 1 % 1 % 1 %
age 40-44
lvl 1 92 % 92 % 89 % 86 % 82 %
lvl 2 7 % 7 % 11 % 13 % 17 %
lvl 3 1 % 1 % 0 % 1 % 2 %
age 45-49
lvl 1 91 % 89 % 88 % 83 % 76 %
lvl 2 9 % 10 % 11 % 16 % 22 %
lvl 3 0 % 1 % 2 % 1 % 2 %
age 50-54
lvl 1 90 % 85 % 81 % 76 % 68 %
lvl 2 10 % 13 % 16 % 21 % 28 %
lvl 3 0 % 2 % 3 % 3 % 4 %
age 55-59
lvl 1 86 % 82 % 78 % 75 % 65 %
lvl 2 13 % 17 % 20 % 22 % 31 %
lvl 3 1 % 1 % 2 % 3 % 4 %
age 60-64
lvl 1 85 % 81 % 77 % 74 % 66 %
lvl 2 14 % 17 % 20 % 24 % 31 %
lvl 3 1 % 1 % 2 % 2 % 4 %
age 65-69
lvl 1 84 % 80 % 80 % 71 % 66 %
lvl 2 15 % 18 % 19 % 27 % 29 %
lvl 3 1 % 2 % 2 % 2 % 5 %
age 70-74
lvl 1 76 % 73 % 71 % 65 % 60 %
lvl 2 22 % 26 % 27 % 32 % 36 %
lvl 3 1 % 2 % 2 % 3 % 5 %
age 75-79
lvl 1 74 % 67 % 64 % 63 % 51 %
lvl 2 23 % 31 % 31 % 31 % 42 %
lvl 3 2 % 3 % 4 % 6 % 7 %
age 80-84
lvl 1 57 % 65 % 56 % 49 % 47 %
lvl 2 37 % 31 % 38 % 43 % 43 %
lvl 3 6 % 4 % 6 % 7 % 9 %
age 85-89
lvl 1 46 % 44 % 43 % 35 % 36 %
lvl 2 47 % 48 % 48 % 56 % 50 %
lvl 3 7 % 8 % 9 % 9 % 14 %
age 90+
lvl 1 42 % 39 % 36 % 40 % 22 %
lvl 2 47 % 52 % 46 % 47 % 56 %
lvl 3 11 % 9 % 18 % 13 % 22 %



Pain/Discomfort - Male
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 87 % 92 % 83 % 86 % 84 %
lvl 2 13 % 8 % 17 % 14 % 15 %
lvl 3 1 % 0 % 0 % 0 % 1 %
age 18-20?
lvl 1 83 % 84 % 85 % 87 % 79 %
lvl 2 17 % 16 % 14 % 12 % 19 %
lvl 3 0 % 0 % 0 % 0 % 2 %
age 20-24
lvl 1 84 % 88 % 84 % 85 % 82 %
lvl 2 15 % 12 % 14 % 14 % 17 %
lvl 3 0 % 0 % 2 % 2 % 1 %
age 25-29
lvl 1 84 % 84 % 87 % 83 % 81 %
lvl 2 15 % 16 % 13 % 15 % 18 %
lvl 3 1 % 1 % 1 % 2 % 1 %
age 30-34
lvl 1 86 % 85 % 80 % 80 % 76 %
lvl 2 13 % 14 % 19 % 18 % 21 %
lvl 3 1 % 1 % 1 % 2 % 4 %
age 35-39
lvl 1 84 % 78 % 78 % 74 % 69 %
lvl 2 16 % 20 % 20 % 24 % 26 %
lvl 3 1 % 2 % 2 % 2 % 4 %
age 40-44
lvl 1 79 % 77 % 74 % 69 % 63 %
lvl 2 19 % 20 % 24 % 27 % 31 %
lvl 3 1 % 2 % 2 % 3 % 6 %
age 45-49
lvl 1 74 % 72 % 70 % 65 % 55 %
lvl 2 25 % 26 % 27 % 30 % 38 %
lvl 3 2 % 2 % 3 % 4 % 7 %
age 50-54
lvl 1 68 % 65 % 56 % 53 % 47 %
lvl 2 30 % 33 % 39 % 40 % 41 %
lvl 3 2 % 3 % 5 % 7 % 12 %
age 55-59
lvl 1 66 % 60 % 55 % 52 % 41 %
lvl 2 31 % 35 % 38 % 38 % 43 %
lvl 3 3 % 4 % 6 % 9 % 16 %
age 60-64
lvl 1 60 % 57 % 50 % 47 % 39 %
lvl 2 37 % 39 % 43 % 44 % 48 %
lvl 3 2 % 5 % 7 % 8 % 13 %
age 65-69
lvl 1 58 % 54 % 49 % 45 % 38 %
lvl 2 38 % 40 % 46 % 45 % 49 %
lvl 3 4 % 6 % 5 % 9 % 13 %
age 70-74
lvl 1 49 % 44 % 43 % 37 % 34 %
lvl 2 47 % 50 % 50 % 53 % 52 %
lvl 3 4 % 6 % 7 % 10 % 14 %
age 75-79
lvl 1 48 % 37 % 39 % 38 % 29 %
lvl 2 48 % 54 % 54 % 54 % 57 %
lvl 3 4 % 9 % 7 % 8 % 14 %
age 80-84
lvl 1 37 % 34 % 36 % 36 % 30 %
lvl 2 53 % 57 % 55 % 53 % 56 %
lvl 3 10 % 9 % 9 % 11 % 14 %
age 85-89
lvl 1 34 % 31 % 28 % 28 % 32 %
lvl 2 57 % 62 % 57 % 58 % 52 %
lvl 3 8 % 7 % 15 % 14 % 17 %
age 90+
lvl 1 37 % 39 % 36 % 44 % 26 %
lvl 2 53 % 50 % 57 % 44 % 56 %
lvl 3 10 % 11 % 8 % 12 % 18 %



Anxiety/Depression - Male
level Least deprived Less deprived Median deprived More deprieved Most deprived
age 16-17?
lvl 1 83 % 86 % 83 % 84 % 87 %
lvl 2 16 % 13 % 17 % 16 % 12 %
lvl 3 1 % 1 % 0 % 1 % 1 %
age 18-20?
lvl 1 83 % 79 % 86 % 85 % 84 %
lvl 2 16 % 20 % 12 % 14 % 12 %
lvl 3 1 % 1 % 3 % 1 % 4 %
age 20-24
lvl 1 80 % 81 % 80 % 80 % 79 %
lvl 2 18 % 18 % 19 % 19 % 19 %
lvl 3 2 % 1 % 1 % 1 % 2 %
age 25-29
lvl 1 85 % 82 % 81 % 80 % 79 %
lvl 2 14 % 16 % 18 % 18 % 18 %
lvl 3 1 % 1 % 1 % 2 % 3 %
age 30-34
lvl 1 85 % 85 % 82 % 80 % 76 %
lvl 2 14 % 15 % 16 % 18 % 21 %
lvl 3 1 % 0 % 2 % 2 % 3 %
age 35-39
lvl 1 82 % 82 % 81 % 77 % 72 %
lvl 2 17 % 17 % 17 % 21 % 24 %
lvl 3 1 % 1 % 2 % 3 % 4 %
age 40-44
lvl 1 82 % 80 % 78 % 75 % 69 %
lvl 2 16 % 19 % 20 % 23 % 26 %
lvl 3 1 % 2 % 2 % 2 % 6 %
age 45-49
lvl 1 81 % 81 % 77 % 75 % 69 %
lvl 2 18 % 18 % 20 % 23 % 25 %
lvl 3 1 % 1 % 3 % 2 % 6 %
age 50-54
lvl 1 80 % 81 % 73 % 69 % 66 %
lvl 2 19 % 18 % 24 % 27 % 28 %
lvl 3 1 % 1 % 3 % 4 % 6 %
age 55-59
lvl 1 80 % 79 % 75 % 70 % 61 %
lvl 2 19 % 19 % 22 % 25 % 32 %
lvl 3 1 % 2 % 3 % 5 % 7 %
age 60-64
lvl 1 81 % 79 % 75 % 76 % 66 %
lvl 2 18 % 20 % 23 % 22 % 29 %
lvl 3 1 % 1 % 2 % 2 % 5 %
age 65-69
lvl 1 83 % 78 % 80 % 75 % 68 %
lvl 2 17 % 20 % 18 % 23 % 28 %
lvl 3 1 % 2 % 2 % 2 % 4 %
age 70-74
lvl 1 80 % 81 % 78 % 75 % 71 %
lvl 2 19 % 18 % 20 % 24 % 26 %
lvl 3 1 % 1 % 2 % 2 % 4 %
age 75-79
lvl 1 80 % 78 % 77 % 76 % 68 %
lvl 2 19 % 21 % 21 % 22 % 29 %
lvl 3 1 % 1 % 2 % 1 % 3 %
age 80-84
lvl 1 76 % 76 % 73 % 74 % 72 %
lvl 2 24 % 23 % 26 % 23 % 27 %
lvl 3 1 % 1 % 1 % 3 % 1 %
age 85-89
lvl 1 69 % 75 % 72 % 67 % 65 %
lvl 2 29 % 25 % 25 % 31 % 31 %
lvl 3 2 % 0 % 3 % 2 % 4 %
age 90+
lvl 1 73 % 72 % 69 % 70 % 70 %
lvl 2 24 % 26 % 31 % 30 % 30 %
lvl 3 3 % 3 % 0 % 0 % 0 %






fin.